package com.tabnet.dao;

import java.sql.SQLException;
import java.util.Map;

import com.tabnet.beans.produit.GammeProduit;

public interface DAOGammeProduit {
	
	/**
	 * Méthode qui ajoute une gamme dans la base de données
	 * @param gammeP
	 * @throws DAOException
	 */
	public void addGammeProduit(GammeProduit gammeP) throws DAOException;
	
	/**
	 * Méthode qui modifie une gamme dans la base de données
	 * @param gammeP
	 * @param action
	 * @throws DAOException
	 */
	public void updGammeProduit(GammeProduit gammeP, String action) throws DAOException;
	
	/**
	 * <p>Fonction trouverGammeProduit<br />
	 * Retourne la gamme du produit qui correspond à la référence passée en paramètre, 
	 * null si aucune gamme de produit ne corresponde</p>
	 * @param ref de la gamme du produit à trouver
	 * @param dispo : vrai si la gamme de produit à retourner doit être disponible
	 * @return GammeProduit correspondant à la référence
	 */
	public GammeProduit trouverGammeProduit(String ref, boolean dispo) throws DAOException;

	/**
	 * <p>Fonction getGammeProduits<br />
	 * Retourne la liste des gammes produits qui sont disponible
	 * null si aucune gamme de produit ne corresponde</p>
	 * @param dispo : vrai si la gamme de produit à retourner doit être disponible
	 * @return Map>String,GammeProduit>
	 */
	public Map<String,GammeProduit> getGammeProduits(boolean dispo) throws DAOException;
	
	/**
     * <p>Fonction getLastRef<br />
     * Retourne la dernière référence</p>
     * @throws SQLException
     * @return la derniere reference de la base
     * */
	public String getLastRef() throws SQLException, DAOException;
}
